/**
 * 权限服务接口 - RBAC权限管理和用户权限验证的服务接口
 *
 * 开发人员：马勇俐
 * 开发时间：2025-11-16 至 2025-11-20
 * 模块职责：定义权限管理的核心业务接口，支持用户权限验证、菜单权限获取等功能
 *
 * 技术要点：
 * - 多租户权限管理和角色继承
 * - 用户菜单权限动态生成
 * - 权限代码验证和授权机制
 * - 菜单可见性和功能权限控制
 * - RBAC模型的完整权限验证
 *
 * 开发故事：负责权限服务接口的设计和定义，与安全认证和前端路由深度配合，为系统提供灵活的权限管理和访问控制服务。
 */
package com.pbl.service;

import com.pbl.dto.UserMenuDto;

/**
 * 权限服务接口 - 提供用户权限验证和菜单权限管理的核心功能
 */
public interface PermissionService {

    /**
     * 获取用户的菜单权限和角色权限信息
     * @param userId 用户ID
     * @return 用户菜单权限DTO，包含菜单列表和权限代码
     */
    UserMenuDto getUserMenuAndPermissions(Long userId);

    /**
     * 检查用户是否具有指定权限
     * @param userId 用户ID
     * @param permissionCode 权限代码
     * @return 是否具有该权限
     */
    boolean hasPermission(Long userId, String permissionCode);
}

